package ar.com.age.distribuidora.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import ar.com.age.distribuidora.dao.ElementoDao;
import ar.com.age.distribuidora.dao.ListaDePrecioDao;
import ar.com.age.distribuidora.dominio.Elemento;
import ar.com.age.distribuidora.dominio.ListaDePrecio;
import ar.com.age.distribuidora.service.ListaDePrecioService;

public class ListaDePrecioServiceImpl implements ListaDePrecioService {

	private ElementoDao elementoDao;
	
	private ListaDePrecioDao listaDePrecioDao;
	
	@Autowired(required = true)
	public void setElementoDao(ElementoDao elementoDao) {
		this.elementoDao = elementoDao;
	}
	
	@Autowired(required = true)
	public void setListaDePrecioDao(ListaDePrecioDao listaDePrecioDao) {
		this.listaDePrecioDao = listaDePrecioDao;
	}
	
	@Override
	public void crearOEditarListaDePrecio(ListaDePrecio listaDePrecio) {
		
		listaDePrecioDao.saveOrUpdate(listaDePrecio);		
	}
	
	@Override
	public void crearOEditarElemento(Elemento elemento) {
		
		elementoDao.saveOrUpdate(elemento);		
	}
	
	@Override
	public List<ListaDePrecio> buscarTodosListaDePrecio() {

		return listaDePrecioDao.getAll();
	}
	
	@Override
	public List<Elemento> buscarTodosElemento() {

		return elementoDao.getAll();
	}
	
	@Override
	public void eliminarElemento(Elemento elemento) {

		elementoDao.physicalDelete(elemento);
	}	
	
	@Override
	public void eliminarListaDePrecio(ListaDePrecio listaDePrecio) {
		
		listaDePrecioDao.physicalDelete(listaDePrecio);
	}
	
	@Override
	public List<ListaDePrecio> buscarListaDePrecio(String codigo, String nombre) {

		return listaDePrecioDao.find(codigo, nombre);
	}
	
	@Override
	public ListaDePrecio retornarListaDePrecioConElementos(ListaDePrecio listaDePrecio) {
		
		return listaDePrecioDao.getListaDePrecioConElementos(listaDePrecio);
	}
}
